<script setup>
	import useUserStore from '@/store/modules/user'
	import useSetStore from '@/store/modules/set'
	import { getToken } from '@/utils/auth';
	import { onMounted, ref, watch } from 'vue';
	import { timeFormat } from '@/uni_modules/uview-plus'
	import { onShow, onReady, onHide, onLaunch  } from '@dcloudio/uni-app';
	import { oneType } from "@/api/app_api/category"
	import { product } from "@/api/app_api/product"
	// #ifdef APP-PLUS
	import { addPermisionInterceptor } from '@/uni_modules/x-perm-apply-instr/js_sdk/index.js'
	addPermisionInterceptor('chooseImage', '为了便于您使用该功能上传您的照片/图片/视频用于更换头像、意见反馈、店铺信息、与客服沟通等场景, 我们需要申请您设备的相机和存储权限')
	addPermisionInterceptor('saveImageToPhotosAlbum', '为了保存下载海报，商品图片到手机相册, 我们需要申请您设备的存储权限')
	addPermisionInterceptor('getLocation', '为了便于应用程序可以提供基于位置的服务、定位导航、附近搜索等功能, 我们需要申请您设备的位置权限')
	addPermisionInterceptor('makePhoneCall', '为了联系客服、业务经理与客服等场景, 我们需要申请您设备的拨打电话权限')
	addPermisionInterceptor('getRecorderManager', '为了便于您使用该功能进行录音、语音通话、发布语音、与客服语音沟通等场景, 我们需要申请您设备的麦克风权限')
	addPermisionInterceptor('startLocationUpdate', '为了便于应用程序可以提供基于位置的服务、定位导航、附近搜索等功能, 我们需要申请您设备的位置权限')
	addPermisionInterceptor('scanCode', '为了识别二维码信息, 我们需要申请您设备的相机权限')
	// #endif
	// 微信小程序配置：禁用样式隔离
	defineOptions({
	  options: {
	    styleIsolation: 'shared' // 关键配置
	  }
	})

	const setStore = useSetStore()
	const tyUrl = uni.getStorageSync('tyUrl')
	if (tyUrl) {
		setStore.setBaseUrl(tyUrl)
	}
	const userStore = useUserStore()
	
	const getCategoryGoods = () => {
		oneType().then(res => {
			if (res?.data && res?.data.length > 0) {
				getCategoryGoodsList(res?.data[0].id)
			}
		})
	}
	const getCategoryGoodsList = (categoryId) => {
		const params = {
			sellChannel: userStore.sellChannel,
			regionCode: userStore.regionCode,
			typeId: categoryId
		}
		product(params).then(res => {
			setStore.setCacheGoods({
				categoryId: categoryId,
				regionCode: userStore.regionCode,
				sellChannel: userStore.sellChannel,
				list: res.data.map(item => {
					return {
						...item,
						children: item.productList
					}
				}) || []
			})
		})
	}
	
	const getUserInfoFun = () => {
		userStore.getUserInfo().then(res => {
			userStore.updateLogin()
			// if (res.code === 200) {
			// 	userStore.isLogin = true
			// }
		})
	}
	
	watch(() => userStore.token, (nval, oval) => {
		if (!nval && oval) {
			// #ifdef MP-WEIXIN
			userStore.wxMpOpenId().then(res => {
				userStore.wxMpLoginFun({
					openid: res
				}).then(res1 => {
					getUserInfoFun()
				})
			})
			// #endif
		}
	})

	onLaunch (async () => {
		setStore.setAppLogo()
		setStore.setAppName()
		setStore.getMenuButton()
		setStore.getEnv()
		setStore.setSys()
		setStore.setAllProvince()
		setStore.setRegion()
		userStore.getCategory()
		const token = getToken()
		if (token) {
			getUserInfoFun()
		} else {
			// #ifdef MP-WEIXIN
			const openId = await userStore.wxMpOpenId()
			if (!openId) return false
			userStore.wxMpLoginFun({
				openid: openId
			}).then(res => {
				getUserInfoFun()
			})
			// #endif
			// #ifndef MP-WEIXIN
			// uni.redirectTo({
			// 	url: '/pages/login/login'
			// })
			// #endif
		}
	})
</script>

<style lang="scss">
	/*每个页面公共css */
@import "@/uni_modules/uview-plus/index.scss";
@import '@/static/scss/index.scss';
page {
  background-color: $bg-color; /* 默认页面背景色 */
	color: $text-dark;
}
:deep(.uni-icons) {
	line-height: 1;
}
</style>
